package com.icss.train_sys_back.entity.train_manage;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author wk
 * @desc 车次信息实体类
 * @date 2025/9/25 16:32
 */


/**
 @Document 作用在类，标记实体类为文档对象。有如下属性：
 · indexName：对应索引库名称
 · type：对应在索引库中的类型
 · shards：分片数量，默认5
 · replicas：副本数量，默认1
 @Id 作用在成员变量，标记一个字段作为id 主键
 @Field 作用在成员变量，标记为文档的字段，并指定字段映射属性
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
//@Document(indexName = "train_number_index") // es搜索引擎创建名字为train_number_index 的索引
//@JsonIgnoreProperties(ignoreUnknown = true)
public class TrainNumberEntity {
    /**
     * 车次id
     */
//    @Id
    private Integer id;
    /**
     * 车次号
     */
//    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String trainNumber;
    /**
     * 始发站
     */
//    @Field(type = FieldType.Keyword)
    private String startStation;
    /**
     * 终点站
     */
//    @Field(type = FieldType.Keyword)
    private String endStation;
    /**
     * 途径的站点数量
     */
//    @Field(type = FieldType.Integer)
    private Integer arriveStationNum;
    /**
     * 状态：0-异常 1-正常
     */
//    @Field(type = FieldType.Integer)
    private Integer status;
    /**
     * 始发站发车时间
     */
//    @Field(type = FieldType.Keyword)
    private LocalDateTime startTime;
    /**
     * 终点站到站时间
     */
//    @Field(type = FieldType.Keyword)
    private LocalDateTime arriveTime;
    /**
     * 创建时间
     */

    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 车次经停站列表
     */
//    @Field(type = FieldType.Keyword)
    private List<TrainStationEntity> trainStationEntities;
}
